//
// Created by Jisam on 27/08/2024 8:44 PM.
// Solution of  P2123 【皇后游戏】
//#pragma GCC optimize(3)
#include <bits/stdc++.h>

using namespace std;
#define endl "\n"
#define PSI pair<string,int>
#define PII pair<int,int>
#define PDI pair<double,int>
#define PDD pair<double,double>
#define VVI vector<vector<int>>
#define VI vector<int>
#define VS vector<string>
#define PQLI priority_queue<int, vector<int>, less<int>>
#define PQGI priority_queue<int, vector<int>, greater<int>>
#define code_by_jisam ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
using namespace std;

typedef long long i64;
typedef unsigned u32;
typedef unsigned long long u64;
typedef __int128 i128;

int dx[] = {-1, 1, 0, 0, 1, 1, -1, -1,};
int dy[] = {0, 0, -1, 1, 1, -1, -1, 1,};

// 定义最大数组大小，用于存储节点信息
const int MAXN = 1e5 + 5;

// 定义节点结构体，包含两个整型变量a和b，以及一个用于表示a和b差值符号的整型变量d
struct node{
    int a, b, d;
}nodes[MAXN];

// 定义比较函数，用于节点排序
// 比较规则：首先根据d的值进行升序排序，如果d相同，则根据a的值进行升序排序，否则根据b的值进行降序排序
inline bool cmp(const node &x, const node &y)
{
    if (x.d != y.d)
        return x.d < y.d;
    if (x.d <= 0)
        return x.a < y.a;
    else
        return x.b > y.b;
}

// 定义解决方案函数
// 该函数读取n个节点的a和b值，计算每个节点的d值，对节点进行排序，并计算最终结果c
void solution() {
    int n;
    cin >> n;

    for (int i = 1; i <= n; ++i)
    {
        cin >> nodes[i].a>>nodes[i].b;
        nodes[i].d = nodes[i].a - nodes[i].b;
        if (nodes[i].d)
            nodes[i].d /= abs(nodes[i].d);
    }
    sort(nodes + 1, nodes + n + 1, cmp);
    i64 c = 0, s = 0;
    for (int i = 1; i <= n; ++i)
    {
        s += nodes[i].a;
        c = max(c, s) + nodes[i].b;
    }
    cout << c <<endl;
}


int main() {
    code_by_jisam;
    int T = 1;
    cin >> T;
    while (T--) {
        solution();
    }
    return 0;
}